﻿#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QTcpSocket>
#include <QDebug>
#include <QHostAddress>
#include <QListWidgetItem>
#include <QFile>
#include <QDataStream>
#include <QTimer>
#include <QFileDialog>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private slots:
    void onConnected();//当套接字连接成功调用此槽函数
    void onDisconnected();//当套接字连接断开调用此槽函数
    void onReadRead();//当套接字有消息可读调用此槽函数
    void onTimerOut();//当定时器超时调用此槽函数

private slots:
    void on_btnConnect_clicked();

    void on_listWidget_itemDoubleClicked(QListWidgetItem *item);

    void on_pushButton_2_clicked();

    void on_btnBrowser_clicked();

private:
    Ui::MainWindow *ui;
    enum tpType{FILELIST,FILE};//定义两种传输模式,文件列表发送模式和文件传送模式
    tpType m_type;//记录当前传输模式

    QTcpSocket* m_tcpSocket;//创建套接字指针

    QString m_dirPath;//记录当前访问服务器文件列表的目录路径
    QFile m_file;//创建文件对象用于写入文件

    QTimer m_timer;//创建计时器

    void init();//初始化函数
};
#endif // MAINWINDOW_H
